---
layout: default
---

<div class="jumbotron jumbotron-fluid no-pad">
  <div class="container" style="text-align:center">
    <img src="/images/pmp-logo-main.png" style="width: 700px;max-width:100%;padding-bottom:30px"
      alt="Polygon Mesh Processing Library log" />
    <div class="buttons">
      <a class="btn btn-primary" href="mpview.html"><i class="far fa-play-circle"></i>&nbsp;Try Online</a>
      <a class="btn btn-primary" href="https://github.com/pmp-library/pmp-library/archive/1.2.1.zip" role="button"><i
          class="fas fa-download"></i>&nbsp;Download</a>
      <a class="btn btn-primary" href="https://github.com/pmp-library/pmp-library/" role="button"><i
          class="fab fa-github"></i>&nbsp;GitHub</a>
    </div>
  </div>
</div>

<!-- Main Content -->
<div class="features bg-light">
  <div class="container">
    <div class="row">
      <div class="col-md-12" style="text-align:center; margin-bottom: 2em;">
        <h2>Features</h2>
      </div>
    </div>
    <div class="row">
      <div class="col-md feature">
        <h5>Simple & Efficient Data Structure</h5>
        <p>
          The core of the library is a simple and efficient halfedge mesh data
          structure for storing and processing polygon surface meshes. It has
          been carefully designed and implemented with a focus on ease of use
          and performance while maintaining high flexibility.
        </p>
      </div>

      <div class="col-md feature">
        <h5>Tried & Tested Algorithms</h5>
        <p>
          On top of the core data structure the library provides implementations
          of canonical geometry processing algorithms such as mesh
          simplification based on error quadrics, curvature adaptive remeshing,
          subdivision, smoothing, or parametrization.
        </p>
      </div>

      <div class="col-md feature">
        <h5>Ready-to-Use Visualization Tools</h5>
        <p>
          To support rapid prototyping the library provides mesh viewers and
          visualization utilities based on OpenGL&reg;. In addition, the library
          can be compiled into JavaScript thereby allowing to run mesh
          processing applications directly in a browser,
          see <a href="mpview.html">here</a> for a demo.
        </p>
      </div>
    </div>
  </div>
</div>

<div style="background:white;padding-top:2em;padding-bottom:1em;text-align:center;">
  <div class="container">
    <h2 class="mb-4">Latest News</h2>
    <div class="mb-4">
      {% for post in site.posts limit:3 %}
      <p>
        {{ post.date | date_to_string }}:&nbsp;&nbsp;<a href="{{post.url}}">{{post.title}}</a>
      </p>
      {% endfor %}
    </div>
    <a href="archive.html">
      <i aria-hidden="true" class="fas fa-archive" title="archive icon" style="font-size: 90%;"></i>&nbsp;Archive
    </a>
  </div>
</div>

<div class="features bg-light">
  <div class="container">
    <div class="row">
      <div class="col-md-12" style="text-align:center; margin-bottom: 2em;">
        <h2>Getting Started</h2>
      </div>
    </div>
    <div class="row">
      <div class="col-md-4">
        <h5>Browse the Docs</h5>
        <p>
          The <a href="userguide.html">User Guide</a> describes how to
          quickly <a href="quickstart.html">get started</a> using the pmp-library,
          provides an <a href="overview.html">overview</a> of the library and its
          capabilities, a <a href="tutorial.html">tutorial</a> as well as guidelines for
          <a href="contributing.html">contributing</a> patches or new code.
        </p>
        <p>
          The <a href="usergroup0.html">API Reference</a> provides detailed information on
          the modules, classes, and functions provided by the pmp-library.
        </p>
        <p>
          Checkout the <a href="https://github.com/pmp-library/pmp-library/">GitHub
            Project</a> to browse the source, get the latest development version, or
          to report any issues.
        </p>
      </div>
      <div class="col-md-8">
        <h5>For the Impatient</h5>
        <p>
          Fetch the repository:
        </p>
        <pre>$ git clone --recursive https://github.com/pmp-library/pmp-library.git</pre>
        <p>
          Configure and build:
        </p>
        <pre>$ cd pmp-library && mkdir build && cd build && cmake .. && make</pre>
        <p>
          Run the mesh processing app:
        </p>
        <pre>$ ./mpview ../external/pmp-data/off/bunny.off</pre>
      </div>
    </div>
  </div>
</div>

<div class="features">
  <div class="container">
    <div class="row">
      <div class="col-md-12" style="text-align:center; margin-bottom: 2em;">
        <h2>Open Source</h2>
      </div>
    </div>

    <div class="row" style="margin-bottom: 2em;">
      <div class="col-md">
        <h5>License</h5>
        <p>
          The pmp-library is provided under a simple and flexible MIT-style
          <a href="https://github.com/pmp-library/pmp-library/blob/master/LICENSE.txt">license</a>,
          thereby allowing for both open-source and commercial usage.
        </p>
        <h5>Feedback</h5>
        <p>
          If you found the library to be useful for your projects, please drop
          us a line
          at <a href="mailto:info@pmp-library.org">info@pmp-library.org</a> and
          let us know what you are using it for.
        </p>
      </div>
      <div class="col-md-5">
        <h5>Acknowledgments</h5>
        <p>
          If you are using the pmp-library for research projects, please
          acknowledge its use by referencing
        </p>
        <pre style="line-height: 1.25em;">@misc{pmp-library,
title  = {The Polygon Mesh Processing Library},
author = {Daniel Sieger and Mario Botsch},
note   = {http://www.pmp-library.org},
year   = {2020},
}</pre>
        <p>
          For references to specific algorithms implemented in the library check
          out the <a href="citelist.html">bibliography</a>.
        </p>
      </div>
      <div class="col-md">
        <h5>Heritage</h5>
        <p>
          The pmp-library evolved from the <code>Surface_mesh</code> data structure developed by
          the <a href="http://graphics.uni-bielefeld.de">Bielefeld Graphics & Geometry Group</a>
          which in turn was originally derived from <a href="http://www.openmesh.org">OpenMesh</a>.
        </p>
      </div>
    </div>
  </div>
</div>